//Пример 30.
/* Требуется определить и отпечатать корни уравнения y=x-x-x-10-x+3
методом половинного деления. Этот пример иллюстрирует итерационный цикл.
Для вычисления значения многочлена использована функция.
Точность задана в программе и равна 0.00001.
Корни должны быть отделены и хотя бы один должен находиться между числами а и b.
Если f(a)-f(b)>0 ,то выдается диагностическое сообщение. */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>

void main()
{
double a,b,c,fa,fb,fc,e=1e-5;
double fun(double);
printf("\n\n\n Введите значения а и b :");
scanf("%le%le",&a,&b);
fa=fun(a);
fb=fun(b);
if(fa*fb>0){printf("\n Неверные значения а и b! \a");exit(0);}
while(fabs(a-b)>e)
{
c=(a+b)/2;
fc=fun(c);
if(fabs(fc)<e)break;
if(fc*fa<0){fb=fc;b=c;}
if(fc*fb<0){fa=fc;a=c;}
}
printf("\n\n КОРЕНЬ УРАВНЕНИЯ %lf %lf",c,fc);
getch();
}

double fun(double x)
{
return (x*x*x-10*x+3);
}

 

Сайт управляется системой uCoz